fix: installer Python detection visibility (#11) and stale hook cleanup (#12)#20
Merged
StuBehan merged 2 commits intoApr 30, 2026
Conversation
The "Could not find Python ≥ 3.10" exit message used to scroll past behind ~120 lines of UserNotifications Swift deprecation warnings emitted during the build step, so anyone tailing the install output just saw a non-zero exit with no actionable hint. - Redirect build.sh stdout+stderr to /tmp/stack-nudge-install-build.log; on real build failure, dump the last 20 lines so genuine errors stay visible while routine warnings stop drowning the transcript. - Surround the Python error with blank lines + a ✗ marker, and spell out both fix paths (brew install vs STACKNUDGE_PYTHON env var). - Document the Python ≥ 3.10 prerequisite at the top of the README's Install section so the requirement is visible before the user runs install.sh. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Prior installs at different paths (legacy ~/.tinynudge/notify.sh, moved checkouts, etc.) used to leave duplicate hook entries pointing at dead paths, because the dedupe check matched the current $NOTIFY path exactly. Match any path inside a tinynudge or stack-nudge directory using (?:^|/)\.?(?:tinynudge|stack-nudge)/notify\.sh(?:\s|$) which catches ~/.tinynudge, ~/.stack-nudge, /dev/checkout/stack-nudge, etc. while leaving unrelated hooks (other tools, mixed groups) intact. Applied symmetrically in install.sh (both Claude and Cursor blocks) and uninstall.sh so upgrades and removals are both path-agnostic. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #11 and #12 — both small installer fixes.
#11 — silent Python <3.10 install failure. The "Could not find Python ≥ 3.10" exit message used to scroll past behind ~120 lines of UserNotifications Swift deprecation warnings emitted during the build step.
#12 — stale hook entries on upgrade. Prior installs at different paths (legacy `~/.tinynudge/notify.sh`, moved checkouts, etc.) used to leave duplicate hook entries pointing at dead paths because the dedupe check matched the current `$NOTIFY` path exactly.
/.tinynudge`, `/.stack-nudge`, `/dev/checkout/stack-nudge`, etc., while leaving unrelated hooks (other tools, mixed groups) intact.Test plan
/.claude/settings.json` with a stale `/.tinynudge/notify.sh` entry, run `./install.sh`, confirm only one entry remains